package com.stylefeng.guns.modular.small.dto;

import lombok.Data;

import java.io.Serializable;
/**
 * @des  关于接收支付接口的参数实体类
 */
@Data
public class RequestDTO implements Serializable {

    /**
     * 公众账号ID
     */
    private String  appid;
    /**
     * 商户号
     */
    private  String mch_id;
    /**
     * 随机字符串  长度要求在32位以内
     * 验签工具 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1
     * 设所有发送或者接收到的数据为集合M，将集合M内非空参数值的参数按照参数名ASCII码从小到大排序（字典序）
     * 使用URL键值对的格式（即key1=value1&key2=value2…）拼接成字符串stringA。
     * 特别注意以下重要规则：
     *
     * ◆ 参数名ASCII码从小到大排序（字典序）；
     * ◆ 如果参数的值为空不参与签名；
     * ◆ 参数名区分大小写；
     * ◆ 验证调用返回或微信主动通知签名时，传送的sign参数不参与签名，将生成的签名与该sign值作校验。
     * ◆ 微信接口可能增加字段，验证签名时必须支持增加的扩展字段
     * 第二步，在stringA最后拼接上key得到stringSignTemp字符串，并对stringSignTemp进行MD5运算，再将得到的字符串所有字符转换为大写，得到sign值signValue。
     *
     * ◆ key设置路径：微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置
     *
     * 实列地址：https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3
     */
    private  String nonce_str;
    /**
     *签名
     * 通过签名算法计算得出的签名值，详见签名生成算法
     * 加密推荐地址：https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3
     */
    private  String  sign;
    /**
     * 商品描述
     * 商品简单描述，该字段请按照规范传递，具体请见参数规定
     * https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_2
     */
    private  String  body;
    /**
     * 商户订单号
     * 商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|* 且在同一个商户号下唯一。详见商户订单号
     */
    private  String  out_trade_no;
    /**
     * 标价金额
     * 订单总金额，单位为分，详见支付金额
     */
    private  int  total_fee;
    /**
     * 终端IP
     * 支持IPV4和IPV6两种格式的IP地址。用户的客户端IP
     */
    private  String  spbill_create_ip;
    /**
     * 通知地址
     * 异步接收微信支付结果通知的回调地址，通知url必须为外网可访问的url，不能携带参数。
     */
    private  String  notify_url;
    /**
     * 交易类型
     * JSAPI -JSAPI支付
     * NATIVE -Native支付
     * APP -APP支付
     * 说明详见参数规定
     */
    private  String  trade_type;
    /**
     * 附加数据
     * 附加数据，在查询API和支付通知中原样返回，可作为自定义参数使用
     */
    private  String  attach;
    /**
     * 商品详情
     */
    private  String  detail;

    /**
     * 用户标识
     */
    private  String  openid;
}
